package com.broada.apm.dao.impl;

import java.util.List;

import com.broada.apm.dao.L7ModuleDao;
import com.broada.apm.model.L7Module;
import com.broada.apm.model.RemoteProtocolInfo;

public class MysqlL7ModuleDao extends MysqlAbstractDao implements L7ModuleDao {

	public static final String L7MODULE_NAMESPACE = "com.broada.apm.dao.L7ModuleDao."; 
	
	@Override
	public void addL7Module(L7Module l7Module) {
		getSqlSession().insert(L7MODULE_NAMESPACE + "addL7Module", l7Module);
	}

	@Override
	public void updateL7Module(L7Module l7Module) {
		getSqlSession().update(L7MODULE_NAMESPACE + "updateL7Module", l7Module);
	}

	@Override
	public void deleteL7Module(L7Module l7Module) {
		getSqlSession().delete(L7MODULE_NAMESPACE + "deleteL7Module", l7Module);
	}

	@Override
	public L7Module getL7ModuleById(String l7ModuleId) {
		return getSqlSession().selectOne(L7MODULE_NAMESPACE + "getL7ModuleById", l7ModuleId);
	}

	@Override
	public List<L7Module> getAllL7Modules() {
		return getSqlSession().selectList(L7MODULE_NAMESPACE + "getAllL7Modules");
	}

	@Override
	public L7Module getL7ModuleByCname(String cname) {
		return getSqlSession().selectOne(L7MODULE_NAMESPACE + "getL7ModuleByCname", cname);
	}

	@Override
	public void addRemoteProtocolInfo(RemoteProtocolInfo info) {
		getSqlSession().insert(L7MODULE_NAMESPACE + "addRemoteProtocolInfo", info);
	}

	@Override
	public void updateRemoteProtocolInfo(RemoteProtocolInfo info) {
		getSqlSession().update(L7MODULE_NAMESPACE + "updateRemoteProtocolInfo", info);
	}

	@Override
	public RemoteProtocolInfo queryRemoteProtocolInfo(RemoteProtocolInfo info) {
		return getSqlSession().selectOne(L7MODULE_NAMESPACE + "queryRemoteProtocolInfo", info);
	}

	@Override
	public void deleteRemoteProtocolInfo(RemoteProtocolInfo info) {
		getSqlSession().delete(L7MODULE_NAMESPACE + "deleteRemoteProtocolInfo", info);
	}

	@Override
	public List<RemoteProtocolInfo> getRemoteProtocolInfoByAnalyzerId(RemoteProtocolInfo info) {
		return getSqlSession().selectList(L7MODULE_NAMESPACE + "getRemoteProtocolInfoByAnalyzerId", info);
	}

	@Override
	public List<RemoteProtocolInfo> getAnalyzerLog(String analyzerId) {
		return getSqlSession().selectList(L7MODULE_NAMESPACE + "getAnalyzerLog", analyzerId);
	}

}
